home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / utils / tweak16b / vgalib.hpp < prev   
C/C++ Source or Header  |  1993-11-22  |  3KB  |  97 lines

  1. #ifndef _VGALIB_HPP
  2. #define _VGALIB_HPP
  3.  
  4. class GraphicsAPI;
  5. class VGAGraphicsAPI;
  6. class Chained256;
  7. class Unchained256;
  8. class Planar16;
  9.  
  10. class GraphicsAPI
  11.     {
  12.     public:
  13.         enum HJustify    { LEFT, HCENTER, RIGHT };
  14.         enum VJustify    { TOP, VCENTER, BOTTOM };
  15.  
  16.     protected:
  17.         int xres, yres, vxres, vyres, color, colors;
  18.         unsigned char *font, *libID;
  19.         int fontWidth, fontHeight;
  20.         HJustify hJustify;
  21.         VJustify vJustify;
  22.     public:
  23.         GraphicsAPI(int, int, int, int, int);
  24.         virtual ~GraphicsAPI()                {}
  25.         virtual char *getLibID()            { return libID; }
  26.         virtual int getWidth()                { return xres; }
  27.         virtual int getHeight()                { return yres; }
  28.         virtual int getVirtualWidth()        { return vxres; }
  29.         virtual int getVirtualHeight()        { return vyres; }
  30.         virtual long getPageSize()            { return long(xres)*yres; }
  31.         virtual int getColors()                { return colors; }
  32.         virtual void setColor(int c)        { color = c; }
  33.         virtual void setBase(int, int)        =0;
  34.         virtual void syncWithRefresh()        =0;
  35.         virtual int getColor()                { return color; }
  36.         virtual void putPixel(int x, int y)    { putPixel(x, y, color); }
  37.         virtual void putPixel(int x, int y, int c) =0;
  38.         virtual int getPixel(int x, int y)    =0;
  39.         virtual void hLine(int, int, int);
  40.         virtual void vLine(int, int, int);
  41.         virtual void line(int, int, int, int);
  42.         virtual void rectangle(int, int, int, int);
  43.         virtual void bar(int, int, int, int);
  44.         virtual void wipe();
  45.         virtual void putChar(int, int, int);
  46.         virtual void putText(int, int, char*);
  47.         virtual void setTextJustify(HJustify, VJustify);
  48.     };
  49.  
  50. class VGAGraphicsAPI : public GraphicsAPI
  51.     {
  52.     protected:
  53.         int xbytes;
  54.         static unsigned char *videoBuf;
  55.         virtual unsigned getOffset(int, int);
  56.         virtual int getPelPan(int) =0;
  57.     public:
  58.         VGAGraphicsAPI(int, int, int, int, int);
  59.         void syncWithRefresh();
  60.         void setBase(int, int);
  61.     };
  62.  
  63. class Chained256 : public VGAGraphicsAPI
  64.     {
  65.     protected:
  66.         int getPelPan(int);
  67.         unsigned getOffset(int, int);
  68.     public:
  69.         Chained256(int, int, int);
  70.         void putPixel(int, int, int);
  71.         int getPixel(int, int);
  72.         virtual void hLine(int, int, int);
  73.     };
  74.  
  75. class Unchained256 : public VGAGraphicsAPI
  76.     {
  77.     protected:
  78.         int getPelPan(int);
  79.     public:
  80.         Unchained256(int, int, int);
  81.         void putPixel(int, int, int);
  82.         int getPixel(int, int);
  83.         virtual void hLine(int, int, int);
  84.     };
  85.  
  86. class Planar16 : public VGAGraphicsAPI
  87.     {
  88.     protected:
  89.         int getPelPan(int);
  90.     public:
  91.         Planar16(int, int, int);
  92.         void putPixel(int, int, int);
  93.         int getPixel(int, int);
  94.         void hLine(int, int, int);
  95.     };
  96.  
  97. #endif